/*
  1、handleGetUserInfo         授权用户基本信息（需要依赖button按钮）
  2、getUserInfo               在用户已经授权的情况下，获取用户信息，并将其返回给页面
*/

/*
  案例==》  <button @click="getuserinfoFn">获取用户信息</button>  
            getuserinfoFn(){
              handleGetUserInfo(()=>{
                console.log("---获取用户信息---",this.$store.state.baseStore.userInfo);
              });
            }
*/

const canIUserInfo = uni.canIUse('getUserProfile')
import store from '@store/index'

export const handleGetUserInfo = callback => {
  if (!canIUserInfo) {
    uni.showToast({
      icon: 'none',
      title: '请关闭小程序，去升级最新微信，否则会导致部分功能无法使用',
      duration: 2000
    })
    return
  }
  uni.getUserProfile({
    desc: '您的个人信息将用于系统展示！',
    success: res => {
      let userInfo = res.userInfo || {}
      store.commit('baseStore/SET_USERINFO', userInfo)
      callback && callback()
    },
    fail: () => {
      uni.showToast({
        title: '拒绝授权将无法使用部分系统功能',
        icon: 'none',
        duration: 2000,
        success: () => {
          store.commit('baseStore/SET_USERINFO', {})
          callback && callback()
        }
      })
    }
  })
}

export const getUserInfo = callback => {
  if (!canIUserInfo) {
    uni.showToast({
      icon: 'none',
      title: '请关闭小程序，去升级最新微信，否则会导致部分功能无法使用',
      duration: 2000
    })
    return
  }
  uni.getSetting({
    success: res => {
      // 没有授权
      if (res.authSetting['scope.userInfo'] != true) return
      // 已经授权
      uni.getUserInfo({
        success: res => {
          callback && callback(res.userInfo)
        },
        fail: () => {
          uni.showToast({
            title: '获取用户信息失败',
            icon: 'none',
            duration: 1500
          })
        }
      })
    }
  })
}
